package com.lsc.record.config;

import javax.annotation.Resource;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;

import com.mybatisflex.core.audit.AuditManager;
import com.mybatisflex.core.mybatis.FlexConfiguration;
import com.mybatisflex.spring.boot.ConfigurationCustomizer;

@Configuration
public class MyBatisFlexConfiguration implements ConfigurationCustomizer {
    private static final Logger logger = LoggerFactory.getLogger("sql");
    
    @Resource
    private RecordConfig config;

	@Override
	public void customize(FlexConfiguration configuration) {
		if(config.isAuditEnable()) {			
			//开启审计功能
			AuditManager.setAuditEnable(true);
			
			//设置 SQL 审计收集器
			AuditManager.setMessageCollector(auditMessage ->
			logger.info("{},{}ms", auditMessage.getFullSql()
					, auditMessage.getElapsedTime())
					);
		}
		
	}
	
}
